package com.woniu.liuzhougov.authorityControl.service;

import com.woniu.liuzhougov.authorityControl.pojo.Rights;

import java.util.List;

/**
 * @author zhuxinpan
 * @version 1.0
 * @className RightsService
 * @description 处理和权限相关的业务
 * @date 2019/4/29 11:56
 */
public interface RightsService {
    /**
     * @param
     * @return java.util.List<com.woniu.liuzhougov.authorityControl.pojo.Rights>
     * @author zhuxinpan
     * @date 2019/4/29 12:00
     * @description 列出所有权限
     */
    List<Rights> listRights();

    /**
     * @param rights
     * @return int
     * @author zhuxinpan
     * @date 2019/4/29 19:30
     * @description 通过资源名查询数量
     */
    int countByRightsName(Rights rights);

    /**
     * @param rights
     * @return int
     * @author zhuxinpan
     * @date 2019/4/29 19:37
     * @description 添加资源
     */
    int insertRights(Rights rights);

    /**
     * @param rightsId
     * @return com.woniu.liuzhougov.authorityControl.pojo.Rights
     * @author zhuxinpan
     * @date 2019/4/29 19:48
     * @description 通过主键查询
     */
    Rights getRightsByRightsId(Integer rightsId);

    /**
     * @param rights
     * @return int
     * @author zhuxinpan
     * @date 2019/4/29 19:48
     * @description 更新
     */
    int updateRightsByRightsId(Rights rights);

    /**
     * @param rightsId
     * @return int
     * @author zhuxinpan
     * @date 2019/4/29 20:18
     * @description 删除资源
     */
    int deleteRightsByRightsId(Integer rightsId);

    /**
     * @param parentId
     * @return int
     * @author zhuxinpan
     * @date 2019/4/30 11:26
     * @description 查找rights表中父节点id为parentId的数量
     */
    int countNumberByParentId(Integer parentId);

    /**
     * @param rights
     * @return int
     * @author zhuxinpan
     * @date 2019/4/30 11:35
     * @description 判断权限标识的数量
     */
    int countNumberByPerms(Rights rights);

    /**
     * @param userId
     * @return java.util.List<java.lang.String>
     * @author zhuxinpan
     * @date 2019/4/30 11:56
     * @description 通过用户id列出他拥有的权限
     */
    List<String> listPermsByUserId(Integer userId);


}
